/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Dao;
import Beans.EntidadBean;
import Conexion.Conexion;
import java.sql.ResultSet;
import java.util.Vector;

/**
 *
 * @author acorzo
 */
public class EntidadDAO {

    // Atributos de la Clase
    public static String GET_ENTIDADES_ESTADOS="SELECT DISTINCT(descEstado) As estado,idEstadoE FROM cat_entidades;";
    public static String GET_ENTIDADES_CIUDADES="SELECT DISTINCT(descMunicipio) As ciudad FROM cat_entidades WHERE descEstado=";
    public static String GET_ENTIDADES_COLONIAS="SELECT DISTINCT(descAsentamiento) As colonia,idEntidad FROM cat_entidades WHERE descMunicipio=";
    public static String GET_ID_ENTIDAD="SELECT idEntidad FROM cat_entidades WHERE ";
    public static String GET_ESTADO_CIUDAD_COLONIA_PROVEEDOR="SELECT descEstado,descCiudad,descAsentamiento FROM cat_entidades WHERE idEntidad=";

    // Metodos Publicos
    // Obtenemos Estados
    public Vector getEntidadEstados(EntidadBean entidadBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos los Estados
        try {
            ResultSet rs=conect.getPreparedStatement().executeQuery(GET_ENTIDADES_ESTADOS);
            while(rs.next()){
                EntidadBean getEstados=new EntidadBean();
                getEstados.setDescEstado(rs.getString("estado"));
                getEstados.setIdEstadoE(rs.getString("idEstadoE"));
                resultDatos.add(getEstados);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : "+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos Ciudades
    public Vector getEntidadCiudades(EntidadBean entidadBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos las Ciudades
        try {
            ResultSet rs=conect.getPreparedStatement().executeQuery(GET_ENTIDADES_CIUDADES+"'"+entidadBean.getDescEstado()+"' ORDER BY ciudad;");
            while(rs.next()){
                EntidadBean getCiudades=new EntidadBean();
                getCiudades.setDescCiudad(rs.getString("ciudad"));
                resultDatos.add(getCiudades);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : "+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos las Colonias
    public Vector getEntidadColonias(EntidadBean entidadBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos las Colonias
        try {
            ResultSet rs=conect.getPreparedStatement().executeQuery(GET_ENTIDADES_COLONIAS+"'"+entidadBean.getDescCiudad()+"' ORDER BY colonia;");
            while(rs.next()){
                EntidadBean getColonias=new EntidadBean();
                getColonias.setDescAsentamiento(rs.getString("colonia"));
                getColonias.setIdEntidad(rs.getString("idEntidad"));
                resultDatos.add(getColonias);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : "+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos el Id de Entidad
    public Vector getIdEntidad(EntidadBean entidadBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos el Id Entidad
        try {
            ResultSet rs=conect.getPreparedStatement().executeQuery(GET_ID_ENTIDAD+
                    "descEstado='"+entidadBean.getDescEstado()+"' AND descCiudad='"+entidadBean.getDescCiudad()+"' AND descAsentamiento='"+entidadBean.getDescAsentamiento()+"'");
            while(rs.next()){
                EntidadBean getIdEntidad=new EntidadBean();
                getIdEntidad.setIdEntidad(rs.getString("idEntidad"));
                resultDatos.add(getIdEntidad);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : "+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos la Descripcion del Estado, Ciudad y Colonia
    public Vector getDescEntidadProveedor(EntidadBean entidadBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos la Descripcion de Entidad Proveedor
        try {
            ResultSet rs=conect.getPreparedStatement().executeQuery(GET_ESTADO_CIUDAD_COLONIA_PROVEEDOR+entidadBean.getIdEntidad());
            while(rs.next()){
                EntidadBean getDescEstadoCiudadColonia=new EntidadBean();
                getDescEstadoCiudadColonia.setDescEstado(rs.getString("descEstado"));
                getDescEstadoCiudadColonia.setDescCiudad(rs.getString("descCiudad"));
                getDescEstadoCiudadColonia.setDescAsentamiento(rs.getString("descAsentamiento"));
                resultDatos.add(getDescEstadoCiudadColonia);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : "+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

}
